Interoperability of computer systems has become increasingly important for enterprises. It is often the case that enterprises have extremely large legacy data stores that are maintained in propriety storage format. Additionally, enterprise customers often have a substantial investment in application systems that may span a decade or more of development effort. These business applications typically reside in IBM CICS (Customer Information Control System) and IMS (Information Management System) Transaction Manager environments. Even as technology has moved forward, enterprise customers have been reluctant to move their line of critical business application and data to distributed environments, such as those based on the WINDOWS operating systems.
However, in recent years customers have been building more new applications within distributed computing environments such as WINDOWS, COM+, .Net, SQL Server and BizTalk. The problem the enterprise data center manager faces is the ability to bridge the legacy application and data stores maintained in the centralized data center with new applications built on emerging technologies in distributed environments.
In essence, the problem in using legacy systems with new environments is one of interoperability. Legacy systems may employ data types, communication protocols, function-calling mechanisms, programming models, etc., that are not compatible with newer systems. Thus, if an application in a legacy system (e.g., an IBM CICS system) attempts to call a software object in a newer system (e.g., a WINDOWS system), the call may not be understood for a variety of reasons. For example, the legacy system and the newer system may represent data in a different manner (e.g., length specified character strings versus null-terminated character strings), may use different communications protocols to support calls to remote objects (e.g., System Network Architecture (SNA) versus Transport Control Protocol (TCP)), and one system may use a data type (e.g., dependent-sized arrays) that are not supported in the other system. In theory, object-oriented programming allows two objects that know little about each other to interoperate with each other through a known interface. However, incompatibilities such as those described above often thwart this type of interoperability between heterogeneous systems (i.e., systems of different types), such as between an IBM mainframe and a WINDOWS-based system.
In view of the foregoing, there is a need for a system and method that overcomes the drawbacks of the prior art.